<!DOCTYPE html>

<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

    <title>Welcome to cup’s documentation! &#8212; cup 3.2.33 documentation</title>
    <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
    <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
    <script src="_static/doctools.js"></script>
    <script src="_static/sphinx_highlight.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="cup package" href="cup.html" />
   
  <link rel="stylesheet" href="_static/custom.css" type="text/css" />
  
  
  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />

  </head><body>
  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          

          <div class="body" role="main">
            
  <section id="welcome-to-cup-s-documentation">
<h1>Welcome to cup’s documentation!<a class="headerlink" href="#welcome-to-cup-s-documentation" title="Permalink to this heading">¶</a></h1>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="cup.html">cup package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="cup.html#subpackages">Subpackages</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.net.html">cup.net package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#cup.net.get_hostip"><code class="docutils literal notranslate"><span class="pre">get_hostip()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#cup.net.get_interfaces"><code class="docutils literal notranslate"><span class="pre">get_interfaces()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#cup.net.get_local_hostname"><code class="docutils literal notranslate"><span class="pre">get_local_hostname()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#cup.net.getip_byinterface"><code class="docutils literal notranslate"><span class="pre">getip_byinterface()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#cup.net.localport_free"><code class="docutils literal notranslate"><span class="pre">localport_free()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#cup.net.port_listened"><code class="docutils literal notranslate"><span class="pre">port_listened()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#cup.net.set_sock_keepalive_linux"><code class="docutils literal notranslate"><span class="pre">set_sock_keepalive_linux()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#cup.net.set_sock_linger"><code class="docutils literal notranslate"><span class="pre">set_sock_linger()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#cup.net.set_sock_quickack"><code class="docutils literal notranslate"><span class="pre">set_sock_quickack()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#cup.net.set_sock_reusable"><code class="docutils literal notranslate"><span class="pre">set_sock_reusable()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#subpackages">Subpackages</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#module-cup.net.ipaddr">cup.net.ipaddr module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.net.html#module-cup.net.route">cup.net.route module</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.res.html">cup.res package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.res.html#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.res.html#module-cup.res.linux">cup.res.linux module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.res.html#module-cup.res.mac">cup.res.mac module</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.services.html">cup.services package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.services.html#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.services.html#module-cup.services.autowait">cup.services.autowait module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.services.html#module-cup.services.buffers">cup.services.buffers module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.services.html#module-cup.services.executor">cup.services.executor module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.services.html#module-cup.services.generator">cup.services.generator module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.services.html#module-cup.services.heartbeat">cup.services.heartbeat module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.services.html#module-cup.services.msgbroker">cup.services.msgbroker module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.services.html#module-cup.services.serializer">cup.services.serializer module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.services.html#module-cup.services.threadpool">cup.services.threadpool module</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.shell.html">cup.shell package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.shell.html#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.shell.html#module-cup.shell.expect">cup.shell.expect module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.shell.html#module-cup.shell.oper">cup.shell.oper module</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.storage.html">cup.storage package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.storage.html#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.storage.html#module-cup.storage.obj">cup.storage.obj module</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.util.html">cup.util package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.util.html#cup.util.check_not_none"><code class="docutils literal notranslate"><span class="pre">check_not_none()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.util.html#cup.util.check_type"><code class="docutils literal notranslate"><span class="pre">check_type()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.util.html#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.util.html#module-cup.util.conf">cup.util.conf module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.util.html#module-cup.util.constants">cup.util.constants module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.util.html#module-cup.util.context">cup.util.context module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.util.html#module-cup.util.misc">cup.util.misc module</a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.util.html#module-cup.util.typechecker">cup.util.typechecker module</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.web.html">cup.web package</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.cache">cup.cache module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.cache.CacheFull"><code class="docutils literal notranslate"><span class="pre">CacheFull</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.cache.KVCache"><code class="docutils literal notranslate"><span class="pre">KVCache</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.cache.KVCache.INFINITE_TIME"><code class="docutils literal notranslate"><span class="pre">KVCache.INFINITE_TIME</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.cache.KVCache.TIME_EXTENSION"><code class="docutils literal notranslate"><span class="pre">KVCache.TIME_EXTENSION</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.cache.KVCache.clear"><code class="docutils literal notranslate"><span class="pre">KVCache.clear()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.cache.KVCache.get"><code class="docutils literal notranslate"><span class="pre">KVCache.get()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.cache.KVCache.pop_n_expired"><code class="docutils literal notranslate"><span class="pre">KVCache.pop_n_expired()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.cache.KVCache.set"><code class="docutils literal notranslate"><span class="pre">KVCache.set()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.cache.KVCache.set_time_extension"><code class="docutils literal notranslate"><span class="pre">KVCache.set_time_extension()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.cache.KVCache.size"><code class="docutils literal notranslate"><span class="pre">KVCache.size()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.cache.KvCache"><code class="docutils literal notranslate"><span class="pre">KvCache</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.const">cup.const module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.const.ConstError"><code class="docutils literal notranslate"><span class="pre">ConstError</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.decorators">cup.decorators module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.decorators.Singleton"><code class="docutils literal notranslate"><span class="pre">Singleton</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.decorators.TraceUsedTime"><code class="docutils literal notranslate"><span class="pre">TraceUsedTime</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.decorators.needlinux"><code class="docutils literal notranslate"><span class="pre">needlinux()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.decorators.needmac"><code class="docutils literal notranslate"><span class="pre">needmac()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.decorators.needposix"><code class="docutils literal notranslate"><span class="pre">needposix()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.decorators.py_versioncheck"><code class="docutils literal notranslate"><span class="pre">py_versioncheck()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.err">cup.err module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.AccessDenied"><code class="docutils literal notranslate"><span class="pre">AccessDenied</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.AsyncMsgError"><code class="docutils literal notranslate"><span class="pre">AsyncMsgError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.BaseCupException"><code class="docutils literal notranslate"><span class="pre">BaseCupException</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.ConfigError"><code class="docutils literal notranslate"><span class="pre">ConfigError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.DecoratorException"><code class="docutils literal notranslate"><span class="pre">DecoratorException</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.LockFileError"><code class="docutils literal notranslate"><span class="pre">LockFileError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.LoggerException"><code class="docutils literal notranslate"><span class="pre">LoggerException</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.NetException"><code class="docutils literal notranslate"><span class="pre">NetException</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.NoSuchProcess"><code class="docutils literal notranslate"><span class="pre">NoSuchProcess</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.NotImplementedYet"><code class="docutils literal notranslate"><span class="pre">NotImplementedYet</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.NotSupportedError"><code class="docutils literal notranslate"><span class="pre">NotSupportedError</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.ResException"><code class="docutils literal notranslate"><span class="pre">ResException</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.err.ThreadTermException"><code class="docutils literal notranslate"><span class="pre">ThreadTermException</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.exfile">cup.exfile module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.exfile.LockFile"><code class="docutils literal notranslate"><span class="pre">LockFile</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.exfile.LockFile.filepath"><code class="docutils literal notranslate"><span class="pre">LockFile.filepath()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.exfile.LockFile.lock"><code class="docutils literal notranslate"><span class="pre">LockFile.lock()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.exfile.LockFile.unlock"><code class="docutils literal notranslate"><span class="pre">LockFile.unlock()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.exfile.mk_newnode"><code class="docutils literal notranslate"><span class="pre">mk_newnode()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.exfile.safe_delete"><code class="docutils literal notranslate"><span class="pre">safe_delete()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.exfile.safe_rmtree"><code class="docutils literal notranslate"><span class="pre">safe_rmtree()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.flag">cup.flag module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.flag.BaseMan"><code class="docutils literal notranslate"><span class="pre">BaseMan</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.flag.BaseMan.get_key_list"><code class="docutils literal notranslate"><span class="pre">BaseMan.get_key_list()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.flag.BaseMan.getkey_bynumber"><code class="docutils literal notranslate"><span class="pre">BaseMan.getkey_bynumber()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.flag.BaseMan.getnumber_bykey"><code class="docutils literal notranslate"><span class="pre">BaseMan.getnumber_bykey()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.flag.BaseMan.register_types"><code class="docutils literal notranslate"><span class="pre">BaseMan.register_types()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.flag.FlagMan"><code class="docutils literal notranslate"><span class="pre">FlagMan</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.flag.TypeMan"><code class="docutils literal notranslate"><span class="pre">TypeMan</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.log">cup.log module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.backtrace_critical"><code class="docutils literal notranslate"><span class="pre">backtrace_critical()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.backtrace_debug"><code class="docutils literal notranslate"><span class="pre">backtrace_debug()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.backtrace_error"><code class="docutils literal notranslate"><span class="pre">backtrace_error()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.backtrace_info"><code class="docutils literal notranslate"><span class="pre">backtrace_info()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.critical"><code class="docutils literal notranslate"><span class="pre">critical()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.critical_if"><code class="docutils literal notranslate"><span class="pre">critical_if()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.debug"><code class="docutils literal notranslate"><span class="pre">debug()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.debug_if"><code class="docutils literal notranslate"><span class="pre">debug_if()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.error_if"><code class="docutils literal notranslate"><span class="pre">error_if()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.info"><code class="docutils literal notranslate"><span class="pre">info()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.info_if"><code class="docutils literal notranslate"><span class="pre">info_if()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.init_comlog"><code class="docutils literal notranslate"><span class="pre">init_comlog()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.parse"><code class="docutils literal notranslate"><span class="pre">parse()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.reinit_comlog"><code class="docutils literal notranslate"><span class="pre">reinit_comlog()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.setloglevel"><code class="docutils literal notranslate"><span class="pre">setloglevel()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.warn_if"><code class="docutils literal notranslate"><span class="pre">warn_if()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.warning"><code class="docutils literal notranslate"><span class="pre">warning()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.xcritical"><code class="docutils literal notranslate"><span class="pre">xcritical()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.xdebug"><code class="docutils literal notranslate"><span class="pre">xdebug()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.xerror"><code class="docutils literal notranslate"><span class="pre">xerror()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.xinfo"><code class="docutils literal notranslate"><span class="pre">xinfo()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.xinit_comlog"><code class="docutils literal notranslate"><span class="pre">xinit_comlog()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.log.xwarn"><code class="docutils literal notranslate"><span class="pre">xwarn()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.mail">cup.mail module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.mail.SmtpMailer"><code class="docutils literal notranslate"><span class="pre">SmtpMailer</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.mail.SmtpMailer.login"><code class="docutils literal notranslate"><span class="pre">SmtpMailer.login()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.mail.SmtpMailer.sendmail"><code class="docutils literal notranslate"><span class="pre">SmtpMailer.sendmail()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.mail.SmtpMailer.setup"><code class="docutils literal notranslate"><span class="pre">SmtpMailer.setup()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.mail.mutt_sendmail"><code class="docutils literal notranslate"><span class="pre">mutt_sendmail()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.platforms">cup.platforms module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.platforms.is_linux"><code class="docutils literal notranslate"><span class="pre">is_linux()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.platforms.is_mac"><code class="docutils literal notranslate"><span class="pre">is_mac()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.platforms.is_py2"><code class="docutils literal notranslate"><span class="pre">is_py2()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.platforms.is_py3"><code class="docutils literal notranslate"><span class="pre">is_py3()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.platforms.is_windows"><code class="docutils literal notranslate"><span class="pre">is_windows()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.thread">cup.thread module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.thread.CupThread"><code class="docutils literal notranslate"><span class="pre">CupThread</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.thread.CupThread.get_my_tid"><code class="docutils literal notranslate"><span class="pre">CupThread.get_my_tid()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.thread.CupThread.raise_exc"><code class="docutils literal notranslate"><span class="pre">CupThread.raise_exc()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.thread.CupThread.terminate"><code class="docutils literal notranslate"><span class="pre">CupThread.terminate()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.thread.RWLock"><code class="docutils literal notranslate"><span class="pre">RWLock</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.thread.RWLock.acquire_readlock"><code class="docutils literal notranslate"><span class="pre">RWLock.acquire_readlock()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.thread.RWLock.acquire_writelock"><code class="docutils literal notranslate"><span class="pre">RWLock.acquire_writelock()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.thread.RWLock.release_readlock"><code class="docutils literal notranslate"><span class="pre">RWLock.release_readlock()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.thread.RWLock.release_writelock"><code class="docutils literal notranslate"><span class="pre">RWLock.release_writelock()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.thread.async_raise"><code class="docutils literal notranslate"><span class="pre">async_raise()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.thread.thread_alive"><code class="docutils literal notranslate"><span class="pre">thread_alive()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.timeplus">cup.timeplus module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.timeplus.TimePlus"><code class="docutils literal notranslate"><span class="pre">TimePlus</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.timeplus.TimePlus.get_timezone"><code class="docutils literal notranslate"><span class="pre">TimePlus.get_timezone()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.timeplus.TimePlus.local2utc"><code class="docutils literal notranslate"><span class="pre">TimePlus.local2utc()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.timeplus.TimePlus.set_newtimezone"><code class="docutils literal notranslate"><span class="pre">TimePlus.set_newtimezone()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.timeplus.TimePlus.utc2local"><code class="docutils literal notranslate"><span class="pre">TimePlus.utc2local()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.timeplus.TimePlus.utc_now"><code class="docutils literal notranslate"><span class="pre">TimePlus.utc_now()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.timeplus.get_str_now"><code class="docutils literal notranslate"><span class="pre">get_str_now()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.unittest">cup.unittest module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.CCaseExecutor"><code class="docutils literal notranslate"><span class="pre">CCaseExecutor</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.unittest.CCaseExecutor.runcase"><code class="docutils literal notranslate"><span class="pre">CCaseExecutor.runcase()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.CUTCase"><code class="docutils literal notranslate"><span class="pre">CUTCase</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.unittest.CUTCase.get_result"><code class="docutils literal notranslate"><span class="pre">CUTCase.get_result()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.unittest.CUTCase.set_result"><code class="docutils literal notranslate"><span class="pre">CUTCase.set_result()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.unittest.CUTCase.setup"><code class="docutils literal notranslate"><span class="pre">CUTCase.setup()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.unittest.CUTCase.teardown"><code class="docutils literal notranslate"><span class="pre">CUTCase.teardown()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="cup.html#cup.unittest.CUTCase.test_run"><code class="docutils literal notranslate"><span class="pre">CUTCase.test_run()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.assert_eq"><code class="docutils literal notranslate"><span class="pre">assert_eq()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.assert_eq_one"><code class="docutils literal notranslate"><span class="pre">assert_eq_one()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.assert_false"><code class="docutils literal notranslate"><span class="pre">assert_false()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.assert_ge"><code class="docutils literal notranslate"><span class="pre">assert_ge()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.assert_gt"><code class="docutils literal notranslate"><span class="pre">assert_gt()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.assert_le"><code class="docutils literal notranslate"><span class="pre">assert_le()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.assert_lt"><code class="docutils literal notranslate"><span class="pre">assert_lt()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.assert_ne"><code class="docutils literal notranslate"><span class="pre">assert_ne()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.assert_not_eq"><code class="docutils literal notranslate"><span class="pre">assert_not_eq()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.assert_true"><code class="docutils literal notranslate"><span class="pre">assert_true()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="cup.html#cup.unittest.expect_raise"><code class="docutils literal notranslate"><span class="pre">expect_raise()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="cup.html#module-cup.version">cup.version module</a></li>
</ul>
</li>
</ul>
</div>
</section>
<section id="indices-and-tables">
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this heading">¶</a></h1>
<ul class="simple">
<li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li>
<li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li>
<li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
</ul>
</section>


          </div>
          
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="#">cup</a></h1>








<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="cup.html">cup package</a></li>
</ul>

<div class="relations">
<h3>Related Topics</h3>
<ul>
  <li><a href="#">Documentation overview</a><ul>
      <li>Next: <a href="cup.html" title="next chapter">cup package</a></li>
  </ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>








        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="footer">
      &copy;2023, CUP-DEV Team.
      
      |
      Powered by <a href="http://sphinx-doc.org/">Sphinx 7.0.1</a>
      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.13</a>
      
      |
      <a href="_sources/index.rst.txt"
          rel="nofollow">Page source</a>
    </div>

    

    
  </body>
</html>